The use of menu based selection systems for user control of software systems is widely practiced. Menu selection with simple key presses or pointing devices (such as a touchpad or a mouse) eliminates training and memorization of complex command sequences, and can impart information not otherwise readily available to a user. Menus can be used to access information, or for initiation of actions that control software and hardware. Because of their ease of use as compared to command line instructions, pull-down or pop-up menus such as those first employed in the Xerox Star computer have been widely adopted by the computer industry.
However, menu systems are not without disadvantages. Organization of large menu systems suited for use by an inexperienced user can be difficult. If too many menu options are available, it is difficult or impossible to simultaneously fit all the menu choices on a screen. In practice, this has led to the development of hierarchical menu systems, usually tree based, that only present information at one level of the tree at a given time. For example, a user can move higher or lower in binary, ternary, or k-ary tree (where k is an integer representing the number of choices at each level of the tree) to select a desired menu option, with only a relatively few choices having to be made by the user at each level.
Unfortunately, design of a easily usable hierarchical tree menu system is not simple. Menu options or data items may logically belong in several different categories, forcing duplication of entries at different levels of the tree. In addition, users can literally become lost or disoriented in the tree structures having large depth (number of levels) and breadth (number of choices, options, or data available at each level). This problem is prticularly acute in systems having limited screen display space. To fit within screen constraints, the menu designer is forced to provide "narrow" trees having little breadth, with a "deep" level structure. This necessary trade-off between depth and breadth is not to the benefit of a user, who often becomes disoriented after proceeding as few as four or five levels down in the tree structure. Even more importantly, having greater depth in a tree structure usually leads to an increase in the number of menu selections required by a user to complete a task, disrupting work flow and greatly irritating the user.
To alleviate the problems associated with tree structures, menu designers have employed a technique commonly known as "scrolling". A scrolling menu presentation shows only a small portion of the complete menu options. In a common type of scrolling window application, a user accesses other menu options by clicking on arrow keys in a scroll bar to rewrite the display with new choices that are alphabetically ordered before or after the currently displayed scrolling window. Although this method reduces disorientation associated with deep trees, the breadth problems associated with selecting one choice in a long list are enhanced. This may require a user to endure multiple screen rewrites to scroll through a long list of menu choices. Even if shortcuts to particular portions of a long list exist (e.g., pointer selection on a scroll bar to move halfway down a list), such shortcuts often require a guess as to where in a list a desired menu option may be found.
Accordingly, the present invention reduces problems associated with ordering data in deep or wide trees, scrollable lists, or other known methods for organizing data structures for presentation to a user by providing a novel elision based method for accessing members of an ordered data set. A selected ordered data set is divided into multiple ordered subsets. These subsets can be of varying size, but typically will contain approximately the same number of members in each ordered subset. At least one member of each ordered subset is then designated as a "bracket" member, with those members of each ordered subset not identified as bracket members referenced with a "collective data member symbol". Normally, either the highest or the lowest member in the ordered subset is selected to be a bracket member, and an ellipsis ". . ." is used as the collective data member symbol. The ordered set of bracket members is then displayed, with a collective data member symbol also displayed between those bracket members separated from each other by two or more members in the ordered data set.
For example, a display showing integers between 1 and a 100, with an initial four ordered subsets, would appear as "1 . . . 25 . . . 50 . . . 75 . . . 100". A user can select one of the displayed bracket members (1, 25, 50, 75, 100) to obtain more information about that bracket member, or initiate performance of an operation associated with that bracket member.
If a user does not need to select one of the displayed bracket members (1, 25, 50, 75, 100), other data members can be easily accessed by selecting an appropriate ellipsis. In a substantially recursive manner, the foregoing steps of the method of the present invention are repeated. Those members of each ordered subset not identified as bracket members, and arranged between a respective pair of bracket members (i.e., referenced with an ellipsis), constitute a new ordered data set capable of being divided into multiple ordered subsets. Ordinarily, the method of the present invention repeats itself until a user selects a bracket member, or alternatively invokes a call to escape the program.
As an example, consider that selection of the ellipsis between the integers 25 and 50 would result in a rewrite of the display to show "1 . . . 25 . . . 30 . . . 35 . . . 40 . . . 45 . . . 50 . . . 100". Note that this displayed sequence permits backing up to the previous level by selecting the ellipsis between 1 and 25, or the ellipsis between 50 and 100. If the desired number is 35, a user can select the number 35 and initiate performance of the desired operation. If the number to be selected instead happened to be 37, the ellipsis between the numbers 35 and 40 is selected, with the rewritten display then showing "1 . . . 35, 36, 37, 38, 39, 40 . . . 100". The user can then select the displayed bracket member 37, and initiate performance of an operation associated with the number 37. Note that the division into subsets in this example is variable, with the ordered data set 1 through 100 divided into four subsets on the display, the next lower level ordered data set of 25 through 50 is divided into five displayed subsets, and the lowest level simply displaying four bracket members (36, 37, 38, and 39) in the subset. Of course, as desired it is possible to select equal subset divisions at all levels. In fact this may present certain advantages, since choosing equal divisions allows for presentation at all levels in a substantially constant area of display screens.
In preferred embodiments, the method of the present invention adapts to the need of a user by preferentially selecting as bracket members those members of the data set determined likely to be selected to perform an operation by the user. This adaptive behavior greatly speeds the user selection process for data, since redrawing a screen based on the ordered subset of data is not required. The selection criteria for determining likelihood of user selection can vary, but may include preferentially selecting as bracket members those members of the ordered data set last selected by a user; preferentially selecting as bracket members those members of the ordered data set most frequently selected by a user; or even preferentially selecting as bracket members certain user determined members of the ordered data set.
In a most preferred embodiment of the present invention, the ordered data set is alphabetically ordered text. However, the data set can be numerically ordered, chronologically ordered, or even provide an order based on discrete measurements of physical quantities. For example, representations of color, hue, gray levels, temperature, area, length, etc., can be ordered in a manner suitable for use in conjunction with the present invention.
Another aspect of the present invention provides a recursive method for accessing members of an ordered data set. An ordered data set is divided into multiple ordered subsets, with an initial or terminal member of each ordered subset designated as a bracket member. Those members of each ordered subset not identified as bracket members are collectively referenced with a collective data member symbol. An ordered set of bracket members is displayed, with a collective data member symbol displayed between those bracket members separated from each other by two or more members in the ordered data set. When a user selects one of the bracket members, an operation is performed.
Yet another aspect of the present invention encompasses an apparatus for accessing members of ordered data sets too large to permit individual display of each member within a predetermined display area. This apparatus includes a display unit having a predetermined area configured to accommodate a defined number of representations of data members, a memory unit for storing ordered data and instruction data, and a user input device for receiving signals indicating selection of a representation of a data member by a user. The user input device can be a keyboard, a touch sensitive pointer, a mouse, or any other conventional selector mechanisms. Typically, the apparatus has a small (often less than 25 square centimeter) screen display, or alternatively can use only a small area of a larger screen display (e.g., a child window display, a pop-up menu, or a pull-down menu on a standard 17-inch CRT display). In fact, utility in conjunction with small screen displays makes the method and apparatus of the present invention ideal for handheld devices, or those devices having little available space or need for a standard large format display screen.
The apparatus also includes a processor connected to receive data from the user input device, with the processor being further connected to the display unit to control display of representations of data members, and to the memory unit to access stored ordered data and instruction data. The processor is configured to execute instructions that provide for dividing an ordered data set stored in the memory unit into multiple ordered subsets, designating at least one member of each ordered subset as a bracket member, and referencing those members of each ordered subset not identified as bracket members with a collective data member symbol. In response to processor instructions, the display unit displays an ordered set of bracket members, with a collective data member symbol displayed between those bracket members separated from each other by two or more members in the ordered data set stored in the memory unit. When a user selects one of the bracket members with a pointing device or other conventional user input device, an operation such as data retrieval or initiation of software or hardware control is performed by the processor.
Other objects and advantages of the present invention will become apparent to those skilled in the art upon consideration of the following description of the drawings and preferred embodiments.